package io.itit.ecp.admin.provide.action.resp.miniprogram;


import io.itit.ecp.admin.provide.action.resp.ISceneInfoResp;
import io.itit.grass.dict.starter.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


@Data
@ApiModel(value = "消息提醒")
@Accessors(chain = true)
public class WarningResp implements ISceneInfoResp, Serializable {

    @ApiModelProperty("ID")
    private String id;

    @ApiModelProperty("预警名称")
    private String warningName;

    @ApiModelProperty("消息类型(1:计量,2:碳排放,3:动态)")
    private String warningType;

    @ApiModelProperty("预警等级")
    @Dict(dictCode = "ecp-admin.earlyWarningRecord.thresholdLevel")
    private String thresholdLevel;

    @ApiModelProperty("项目Id")
    private String sceneProjectId;

    @ApiModelProperty("项目名称")
    private String sceneProjectName;

    @ApiModelProperty("楼栋ID")
    private String sceneEdificeId;

    @ApiModelProperty("楼层ID")
    private String sceneFloorId;

    @ApiModelProperty("空间ID")
    private String sceneRoomId;

    @ApiModelProperty("场景名称")
    private String sceneInfoName;

    @ApiModelProperty("预警时间")
    private Date warningDate;

    @ApiModelProperty("状态(1:未读,2:已读)")
    private String status;

    @ApiModelProperty("已读时间")
    private Date readTime;

    /* 计量条件(1:按时计量,2:按日计量,3:按月计量) */
    @ApiModelProperty("计量条件(1:按时计量,2:按日计量,3:按月计量)")
    private String meterCondition;

    /* 推送规则(1:实时推送,2:一天一次,3:一天两次,4:一天三次) */
    @ApiModelProperty("推送规则(1:实时推送,2:一天一次,3:一天两次,4:一天三次)")
    private String pushRule;

    /* 判断规则(1:大于等于,2:小于等于) */
    @ApiModelProperty("判断规则(1:大于等于,2:小于等于)")
    private String judgeRule;

    /* 计量数值 */
    @ApiModelProperty("计量数值")
    private BigDecimal meterValue;

    @ApiModelProperty("预警设备详情json")
    private String deviceDetails;

    /* 阈值数值 */
    @ApiModelProperty("阈值数值")
    private BigDecimal thresholdValue;

    public void setSceneInfoName(String sceneInfoName) {
        this.sceneInfoName = sceneInfoName;
    }
}
